package com.ruoyi.meterManager.service;

import com.ruoyi.common.core.domain.model.LoginUser;
import com.ruoyi.meterManager.domain.Custinfo;
import com.ruoyi.meterManager.domain.MeterPicture;
import com.ruoyi.meterManager.domain.Meterread;
import com.ruoyi.meterManager.domain.requestDto.AlterBIRequestDto;
import com.ruoyi.meterManager.domain.requestDto.BaseQueryDto;
import com.ruoyi.meterManager.domain.requestDto.UpdateMrEntity;
import com.ruoyi.meterManager.domain.requestDto.UploadInfo;
import com.ruoyi.meterManager.domain.responseDto.MeterPayHis;
import com.ruoyi.meterManager.domain.responseDto.UmResponseDto;
import com.ruoyi.meterManager.domain.responseDto.MeterCbHis;
import com.ruoyi.meterManager.domain.responseDto.MeterCursor;
import org.springframework.web.multipart.MultipartFile;

import java.util.List;
import java.util.Map;

/**
 * 抄表库（表册）服务接口
 */

public interface MeterreadService {

    List<Map> selectBaseInfo(BaseQueryDto baseQueryDto);

    Map selectBaseInfo1(BaseQueryDto baseQueryDto);

    MeterCursor selectDetailByMrId(BaseQueryDto baseQueryDto);

    //public List<MeterCursor> selectDetails(List<Map> maps);
    public List<MeterCursor> selectDetails(String oaid);

    public List<MeterCursor> selectDetailsByCondition(BaseQueryDto baseQueryDto);

    List<String> selectBF(BaseQueryDto baseQueryDto);

    UmResponseDto updateMeter(MultipartFile[] file, UpdateMrEntity updateMrEntity, LoginUser loginUser) ;

    List<MeterCbHis> selectCbHistory(BaseQueryDto baseQueryDto);

    List<MeterPayHis> selectPayHistory(BaseQueryDto baseQueryDto);

    void deletePicture(String miid);

    String cancelReview(UpdateMrEntity updateMrEntity);

    String alterBaseInfo(AlterBIRequestDto alterBIRequestDto);

    Boolean getFenStatus(String mid);

    String getPictureMonth(String oaid);

    int updateMeterread(Meterread meterread);

    int updateCustinfo(Custinfo custinfo);

    /**
     * 获取自抄表列表
     * @param baseQueryDto
     * @return
     */
    List<Map> getZcbList(BaseQueryDto baseQueryDto);

    /**
     * 获取自抄表用户详情
     * @param baseQueryDto
     * @return
     */
    Map getZcbDetail(BaseQueryDto baseQueryDto);


    /**
     * 自抄表拒绝理由列表
     * @return
     */
    List<Map> getZcbRefuseReasonList();

    /**
     * 自抄表审核
     * @param picture
     */
    void checkZcb(MeterPicture picture);



}
